//Given an integer x, return true if x is palindrome integer. 
//
// An integer is a palindrome when it reads the same backward as forward. For ex
//ample, 121 is palindrome while 123 is not. 
//
// 
// Example 1: 
//
// 
//Input: x = 121
//Output: true
// 
//
// Example 2: 
//
// 
//Input: x = -121
//Output: false
//Explanation: From left to right, it reads -121. From right to left, it becomes
// 121-. Therefore it is not a palindrome.
// 
//
// Example 3: 
//
// 
//Input: x = 10
//Output: false
//Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
// 
//
// Example 4: 
//
// 
//Input: x = -101
//Output: false
// 
//
// 
// Constraints: 
//
// 
// -231 <= x <= 231 - 1 
// 
//
// 
//Follow up: Could you solve it without converting the integer to a string? Rela
//ted Topics 数学 
// 👍 1497 👎 0


package leetcode.editor.cn;

//Java：Palindrome Number
 class P9PalindromeNumber {
    public static void main(String[] args) {
        Solution solution = new P9PalindromeNumber().new Solution();
        // TO TEST
        solution.isPalindrome(-121);
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public boolean isPalindrome(int x) {
            if (x < 0) {
                return false;
            }
            int temp = x;
            int sum = 0;
            while (x != 0) {
                if (sum < Integer.MIN_VALUE / 10 || sum > Integer.MAX_VALUE / 10) {
                    return false;
                }
                sum = sum * 10 + x % 10;
                x = x / 10;
            }
            return temp == sum;
        }
        public  boolean isPalindromeNext(int x) {

            String str = String.valueOf(x);
            for (int i = 0; i < (str.length() / 2); i++) {
                char a = str.charAt(i);
                char b = str.charAt(str.length() - i - 1);
                if (a != b) {
                    return false;
                }
            }

            return true;
        }
    }

//leetcode submit region end(Prohibit modification and deletion)

}